package com.itheima.d1_collection_set;

import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;


/*
    目标：掌握TreeSet集合的使用。

    排序规则 :
        根据compareTo方法的返回值进行指定元素位置
        如果返回值为负数，表示当前存入的元素是较小值，存左边
        如果返回值为0，表示当前存入的元素相等 , 不存
        如果返回值为正数，表示当前存入的元素是较大值，存右边
    this表示当前要存储的元素 , o表示的是已经存在的元素
 */
public class SetTest4 {
    public static void main(String[] args) {
//        TreeSet<String> set = new TreeSet<String>();
//        //按照askll码排序
//        set.add("A");
//        set.add("Z");
//        set.add("3");
//        System.out.println(set);

        //自定义类的排序规则
//        TreeSet<Student> set = new TreeSet<>();
//        Student s1 = new Student("Jack", 23);
//        Student s2 = new Student("bler", 21);
//        Student s3 = new Student("niko", 22);
//        Student s4 = new Student("smoggo", 26);
//        set.add(s1);
//        set.add(s2);
//        set.add(s3);
//        set.add(s4);
//        System.out.println(set);

//类和构造器同时制定了排序规则，以构造器为准

        TreeSet<Double> set = new TreeSet<>(new Comparator<Double>() {
            @Override
            public int compare(Double o1, Double o2) {
                return Double.compare(o2, o1);
            }
        });
        set.add(15.6);
        set.add(15.7);
        set.add(15.8);
        set.add(15.9);
        System.out.println(set);
    }
}
